<?php
namespace Admin\Controller;
use Think\Controller;
//角色管理
class ManagerController extends Controller {
	//管理员列表
	public function showmanager(){
		$role=M("Role");
		$roleinfo = $role->select();
		$this->assign("roleinfo",$roleinfo);
		$this->display("Manager/showlist");
	}
		//分配权限
	public function distribute($role_id){
		$role = new \Admin\Model\ManagerModel("role","kl_");
		if(!empty($_POST)){
			$z = $role -> saveAuth($_POST['role_id'],$_POST['authid']);
			if($z){
                $this -> redirect('showmanager',array(),2,'分配权限成功！');
            }else{
                $this -> redirect('distribute',array('role_id'=>$role_id),2,'分配权限失败！');
            }

		}else{

		$role_info = M("Role")->find($role_id);
		//获得已经拥有的权限信息，并变为Array数组
        $have_auth = explode(',',$role_info['role_auth_ids']);
		//获取可分配的权限信息
		$auth_infoA = D('Auth')->where('auth_level=0')->select();//父级
        $auth_infoB = D('Auth')->where('auth_level=1')->select();//子级
		
		$this -> assign('auth_infoA',$auth_infoA);
		$this -> assign('auth_infoB',$auth_infoB);
		$this -> assign('role_info',$role_info);
		$this -> assign('have_auth',$have_auth);
		//$this -> assign('have_auth',$have_auth);
		$this->display();
		}
	}	






	//角色管理
	public function rolemanage(){
		echo 1;
	}





	
	//权限列表
	public function showauth(){
		//通过auth_path排序获得数据，以便数据通过“上下级关系”呈现出来
        $info = D('Auth')->order('auth_path')->select();
        $this -> assign('info',$info);
		$this->display();
	}

	//添加权限
	function addauth(){
        //两个逻辑：展示、收集
        $auth = new \Admin\Model\ManagerModel("auth","kl_");
        if(!empty($_POST)){
            //表单只收集到4个信息，另外两个字段(path/level)需要计算
            //(在saveData方法里边实现path/level的制作，并最终完善整条记录信息)
            $z = $auth->saveData($_POST);
            if($z){
                $this -> redirect('showauth',array(),2,'添加权限成功！');
            }else{
                $this -> redirect('addauth',array(),2,'添加权限失败！');
            }
        }else{
            //获得被选取的上级权限
            $auth_infoA = $auth -> where('auth_level=0')->select();
            $this -> assign('auth_infoA',$auth_infoA);
            $this -> display();
        }
    }


}